////////////////////////////////////////////////////////////////////////////////
//
// CTTS_Speaker CLASS Header file.
//
////////////////////////////////////////////////////////////////////////////////
#ifndef __CTTS_SPEAKER_H__
#define __CTTS_SPEAKER_H__

#include "TTS_SMLSimpleTag.h"

class CTTS_Speaker : public CTTS_SMLSimpleTag
{
private:
	string m_Gender;
	string m_Age;
	string m_Voice;

public:
	CTTS_Speaker ()
		{
		m_Gender = "male";
		m_Age = "adult";
		m_Voice = "en1";		// refers to "name" attribute in "speaker" tag
		};

	inline void SetGender (const char *Gender);
	inline void SetAge (const char *Age);
	inline void SetVoice (const char *Voice);

	inline const char *GetGender ();
	inline const char *GetAge ();
	inline const char *GetVoice ();

	virtual void ProcessTag (CTTS_SMLNode *pNode);
};

///////////////////////////////////////////////////////////////
// INLINE functions
// 
///////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// SetGender
//
////////////////////////////////////////////////////////////////////////////////
inline void CTTS_Speaker::SetGender (const char *Gender)
{
	m_Gender = Gender;
}

////////////////////////////////////////////////////////////////////////////////
// SetAge
//
////////////////////////////////////////////////////////////////////////////////
inline void CTTS_Speaker::SetAge (const char *Age)
{
	m_Age = Age;
}

////////////////////////////////////////////////////////////////////////////////
// SetVoice
//
////////////////////////////////////////////////////////////////////////////////
inline void CTTS_Speaker::SetVoice (const char *Voice)
{
	m_Voice = Voice;
}

////////////////////////////////////////////////////////////////////////////////
// GetGender
//
////////////////////////////////////////////////////////////////////////////////
inline const char *CTTS_Speaker::GetGender ()
{
	return m_Gender.c_str();
}

////////////////////////////////////////////////////////////////////////////////
// GetAge
//
////////////////////////////////////////////////////////////////////////////////
inline const char *CTTS_Speaker::GetAge ()
{
	return m_Age.c_str();
}

////////////////////////////////////////////////////////////////////////////////
// GetVoice
//
////////////////////////////////////////////////////////////////////////////////
inline const char *CTTS_Speaker::GetVoice ()
{
	return m_Voice.c_str();
}

#endif